{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Quadratic Element for Poisson Equation in 3D"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This example is to show the rate of convergence of the linear finite element approximation of the Poisson equation on the unit square:\n",
    "\n",
    "$$- \\Delta u = f \\; \\hbox{in } (0,1)^3$$\n",
    "\n",
    "for the following boundary conditions\n",
    "- Non-empty Dirichlet boundary condition: $u=g_D \\hbox{ on }\\Gamma_D, \\nabla u\\cdot n=g_N \\hbox{ on }\\Gamma_N.$\n",
    "- Pure Neumann boundary condition: $\\nabla u\\cdot n=g_N \\hbox{ on } \\partial \\Omega$.\n",
    "- Robin boundary condition: $g_R u + \\nabla u\\cdot n=g_N \\hbox{ on }\\partial \\Omega$.\n",
    "\n",
    "**References**:\n",
    "- [Quick Introduction to Finite Element Methods](femdoc.html)\n",
    "- [Introduction to Finite Element Methods](http://www.math.uci.edu/~chenlong/226/Ch2FEM.pdf)\n",
    "- [Progamming of Finite Element Methods](http://www.math.uci.edu/~chenlong/226/Ch3FEMCode.pdf)\n",
    "\n",
    "**Subroutines**:\n",
    "\n",
    "    - Poisson3P2\n",
    "    - cubePoissonP2\n",
    "    - femPoisson3\n",
    "    - Poisson3P2femrate\n",
    "    \n",
    "The method is implemented in `Poisson3P2` subroutine and tested in `cubePoissonP2`. Together with other elements (P1, P2,Q1,WG), `femPoisson3` provides a concise interface to solve Poisson equation. The P2 element is tested in `Poisson3P2femrate`. This doc is based on `Poisson3P2femrate`.    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## P2 Quadratic Element\n",
    "\n",
    "For the quadratic element on a tetrahedron, the local basis functions can be written in terms of barycentric coordinates. The 10 dofs is displayed below. The first 4 are associated to the vertices and 6 to the middle points of 6 edges. \n",
    "\n",
    "Given a mesh, the required data structure can be constructured by\n",
    "        \n",
    "        [elem2dof,edge,bdDof] = dof3P2(elem)\n",
    "\n",
    "\n",
    "### Local indexing\n",
    "\n",
    "The tetrahedron consists of four vertices indexed as [1 2 3 4]. Each tetrahedron contains four faces and six edges. They can be indexed as\n",
    "\n",
    "    locFace = [2 3 4; 1 4 3; 1 2 4; 1 3 2];\n",
    "    locEdge = [1 2; 1 3; 1 4; 2 3; 2 4; 3 4];\n",
    "\n",
    "In `locFace`, the i-th face is opposite to the i-th vertices and the orientation is induced from the tetrahedronthus this is called _opposite indexing_. In `locEdge`, it is the _lexicographic indexing_ which is induced from the lexicographic ordering of the six edges. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nVFxDQnLCV4Nee+21vXv36jehEZF169aJyE9/+lM7BwfAyQgSUnT77bdnZGTMnDkz8iRPwwSQMpbs\nkKJ169ZFvs784MGDIsI1JAApY1MDjPHII4988skn9fX106ZNs3ssAByJBRakZf/+/d/61reWLFky\nefLkQ4cOUSMAKWOGBAMEg8HvfOc7Bw4c2Llz54IFC+weDgBHIkgwRjAYnD59emZmZmtra1FRkd3D\nAeA8LNnBGD6f7/777+/p6Xn11VftHgsARyJISEUwGKysrJw1a1ZHR0f4ZHZ2toh8/PHH9o0LgIMR\nJKRidHS0paXlk08+6erqCp/U7x69YsUK+8YFwMG4hoQUrVq1asOGDZs2bdJ/2dfXV1JScuuttzY3\nN/MMbAApIEhIUXd391NPPbV8+fK77747GAy+/PLLFy9efPfdd3nkKIDUECSkpbm5uaWlJRgMLliw\nYPny5XYPB4CDESQAgBLY1AAAUAJBAgAogSABAJRAkAAASiBIAAAlECQAgBIIEgBACQQJAKAEggQA\nUAJBAgAogSABAJRAkAAASiBIAAAlECQAgBIIEgBACQQJAKAEggQAUAJBAgAogSABAJRAkAAASiBI\nAAAlECQAgBIIEgBACQQJAKAEggQAUAJBAgAogSABAJRAkAAASvhfpOrLTqeu8gwAAAAASUVORK5C\nYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "node = [1,0,0; 0,1,0; 0,0,0; 0,0,1];\n",
    "elem = [1 2 3 4];\n",
    "locEdge = [1 2; 1 3; 1 4; 2 3; 2 4; 3 4];\n",
    "showmesh3(node,elem);\n",
    "view(-14,12);\n",
    "findnode3(node);\n",
    "findedgedof3(node,locEdge);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Boundary dof\n",
    "\n",
    "When implement boundary conditions, we need to find the d.o.f associated to boundary faces. For example, for Neumann boundary conditions, it can be found by\n",
    "\n",
    "               bdFace2dof = [elem2dof(bdFlag(:,1) == 2,[2,3,4,10,9,8]); ...  \n",
    "                             elem2dof(bdFlag(:,2) == 2,[1,4,3,10,6,7]); ...\n",
    "                             elem2dof(bdFlag(:,3) == 2,[1,2,4,9,7,5]); ...\n",
    "                             elem2dof(bdFlag(:,4) == 2,[1,3,2,8,5,6])];"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A local basis\n",
    "\n",
    "The 10 Lagrange-type bases functions are denoted by $\\phi_i, i=1:10$. In barycentric coordinates, they are \n",
    "\n",
    "$$ \\phi_1 = \\lambda_1(2\\lambda_1 -1),\\quad \\nabla \\phi_1 = \\nabla \\lambda_1(4\\lambda_1-1),$$\n",
    "\n",
    "$$ \\phi_2 = \\lambda_2(2\\lambda_2 -1),\\quad  \\nabla \\phi_2 = \\nabla \\lambda_2(4\\lambda_2-1),$$ \n",
    "\n",
    "$$ \\phi_3 = \\lambda_3(2\\lambda_3 -1),\\quad  \\nabla \\phi_3 = \\nabla \\lambda_3(4\\lambda_3-1),$$ \n",
    "\n",
    "$$ \\phi_4 = \\lambda_4(2\\lambda_4 -1),\\quad  \\nabla \\phi_4 = \\nabla \\lambda_4(4\\lambda_4-1),$$ \n",
    "\n",
    "$$ \\phi_5 = 4\\lambda_1\\lambda_2,\\quad  \\nabla\\phi_5 = 4\\left (\\lambda_1\\nabla \\lambda_2 + \\lambda_2\\nabla \\lambda_1\\right )\\; ,$$ \n",
    "\n",
    "$$ \\phi_6 = 4\\lambda _1\\lambda_3,\\quad  \\nabla\\phi_6 = 4\\left (\\lambda_1\\nabla \\lambda_3 + \\lambda_3\\nabla \\lambda_1\\right )\\; ,$$ \n",
    "\n",
    "$$ \\phi_7 = 4\\lambda _1\\lambda_4,\\quad  \\nabla\\phi_7 = 4\\left (\\lambda_1\\nabla \\lambda_4 + \\lambda_4\\nabla\\lambda_1\\right )\\; .$$\n",
    "\n",
    "$$ \\phi_8 = 4\\lambda _2\\lambda_3,\\quad  \\nabla\\phi_8 = 4\\left (\\lambda_2\\nabla \\lambda_3 + \\lambda_3\\nabla \\lambda_2\\right )\\; ,$$ \n",
    "\n",
    "$$ \\phi_9 = 4\\lambda _2\\lambda_4,\\quad  \\nabla\\phi_9 = 4\\left (\\lambda_2\\nabla \\lambda_4 + \\lambda_4\\nabla \\lambda_2\\right )\\; ,$$ \n",
    "\n",
    "$$ \\phi_{10} = 4\\lambda _3\\lambda_4,\\quad  \\nabla\\phi_{10} = 4\\left (\\lambda_3\\nabla \\lambda_4 + \\lambda_4\\nabla \\lambda_3\\right )\\; .$$ \n",
    "\n",
    "\n",
    "When transfer to the reference triangle formed by $(0,0,0),(1,0,0),(0,1,0),(0,0,1)$, the local bases in x-y-z coordinate can be obtained by substituting \n",
    "\n",
    "$$\\lambda _1 = x, \\quad \\lambda _2 = y, \\quad \\lambda _3 = z, \\quad \\lambda_4 = 1-x-y-z.$$ "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Unlike 2-D case, to apply uniform refinement to obtain a fine mesh with good mesh quality, a different ordering of the inital mesh, which may violate the positive ordering, should be used. See [3 D Red Refinement](uniformrefine3doc.html)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mixed boundary condition"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%% Setting\n",
    "[node,elem] = cubemesh([0,1,0,1,0,1],0.5); \n",
    "mesh = struct('node',node,'elem',elem);\n",
    "option.L0 = 1;\n",
    "option.maxIt = 3;\n",
    "option.elemType = 'P2';\n",
    "option.printlevel = 1;\n",
    "option.plotflag = 1;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Multigrid V-cycle Preconditioner with Conjugate Gradient Method\n",
      "#dof:     4913,  #nnz:    70718, smoothing: (1,1), iter: 12,   err = 2.83e-09,   time = 0.15 s\n",
      "Multigrid V-cycle Preconditioner with Conjugate Gradient Method\n",
      "#dof:    35937,  #nnz:   659134, smoothing: (1,1), iter: 12,   err = 3.80e-09,   time = 0.44 s\n",
      "Table: Error\n",
      " #Dof       h        ||u-u_h||    ||Du-Du_h||   ||DuI-Du_h|| ||uI-u_h||_{max}\n",
      "\n",
      "  729   2.500e-01   5.00700e-03   1.32387e-01   5.25032e-02   1.21275e-02\n",
      " 4913   1.250e-01   6.03477e-04   3.52893e-02   9.25606e-03   1.61600e-03\n",
      "35937   6.250e-02   7.43413e-05   9.04712e-03   1.42917e-03   2.02649e-04\n",
      "\n",
      "Table: CPU time\n",
      " #Dof   Assemble     Solve      Error      Mesh    \n",
      "\n",
      "  729   1.20e-01   2.00e-02   1.00e-01   1.00e-02\n",
      " 4913   1.50e-01   1.50e-01   9.00e-02   1.00e-02\n",
      "35937   9.90e-01   4.37e-01   4.10e-01   9.00e-02\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA\nB3RJTUUH4gkNAwk2dBw6DAAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAxMi1TZXAtMjAxOCAyMDowOTo1NDYQfoAAACAA\nSURBVHic7N1pfBPV2gDwJ6XQshVabCkU6JSlBdkUKNUWJC3UDZBV4EWlqRt6oeAr3KsCmkR9FVEU\nuuB1wQa4akFEFjfkQgsim5adQimQlB1KWUpXusz74bRjaJLJZJ0zM8//x4dkejI5SZ7w5MzZVCzL\nAkIIISQ2H7ErgBBCCAFgQkIIIUQJTEgIIYSogAkJIYQQFTAhIYQQogImJIRccvPmzZdffrlLly5t\n2rQZPnz4zp07xa4RQm7mtSBX4bBvhFzx8MMPb9myRaVSBQQE3Lp1y9/ff/fu3ffdd5/Y9ULIbbwW\n5NhCQsh5f/3115YtWwIDAw8dOnT58uXExMTKysqsrCyx64WQ23gzyDEhIeS8goKCTp06Pfnkk337\n9vX39x81ahQA3L59W+x6IeQ23gxyvGSHkBscP378zz//1Ol0V69e/fXXX4cMGSJ2jRByMy8Eua/b\nz4iQAmVkZGRkZADAiy++GBMTI3Z1EHI/LwQ51S2k5cuXHzlypNHBJk2a9OjRIzExsVu3bqLUih/L\nshs2bDhw4EBFRUVycnKvXr3ErpHSvfXWWyUlJZ07d54zZ46jj50zZ05tbW3Pnj1feukl/pJnzpw5\ncuTIokWLdu3aNXXq1K+//lrgU2CQI9dRHuQOYCk2ZswYW9X28/P797//LfxU+/fvj4uLi4uLy8rK\n8lyFWZYdP348V8m1a9d69LmQEB07dgSAgQMHOvHYZs2aAcDDDz9sq0BqampSUtKePXvI3R07dgBA\ny5Ytq6urBT4FBjlyHeVBLpw0Ltn16dOnXbt2AFBVVbV///47d+5UVVWlpKTExcX16dNHyBlu3br1\nxx9/AID5d8nt9u7du27dOgC49957J02a1LNnT889FxLoiSeeuHHjRteuXT1x8sLCwhUrVvj6+pIr\nGLm5uQDQunVrX1+Hv1kY5MhpUgly+9ye4tyI+/H4448/cgdv3749YMAAcnzhwoWNHlJXV3f9+vU7\nd+40Op6dnU0esnjxYssnKi8vd7Ru5eXltbW1jQ6uWLGCPMuqVauEnKSsrMzyJHafxbKMkOdy+rGW\nlbxz505NTY3rZ+YvI+TNsfsUPI8tLS21W6zRj0fLZzx27Jifnx8APPbYY+PGjSPl58+fL7wmGOQY\n5C4+Bc9jKQly4aSXkFiWfffdd8nxBQsWcAe//fbbBx98sGnTpuRPUVFRH3zwQV1dHcuyiYmJERER\n5HiHDh369u377bffsixbVFSUnJzcpUsXAOjSpctTTz11+fJl/irdvn179uzZ3bp1U6lULVq0GDx4\nMHfJom/fvmFhYeRZwsPD+/btW1BQYOskKSkp3bt3V6lUzZo1i46OXr16tcBnYVl2wIABffv2feed\nd3799de+ffv6+Pi0bt167NixV65cIQWSkpL69u3bv3//kpIScqS8vPz+++/v27fv66+/bveFc+ff\nt2/foEGDAODrr78mf9q7d29cXJy/v3/Lli0ff/zx/Pz8vn379u3bd/ny5aSAwDPbqrmQN8fRTy0h\nIaFv376TJ09mWfbWrVszZswICQkhH1O7du1eeuml69ev23os913Nzc0dOHCg1Qr//PPPXE9Pq1at\n3nzzTbv/vZrDIMcgl32QCyfJhDR27FhyfPPmzeTI0qVLyZGAgIBhw4aFhoaSu++99x7LshEREU2a\nNCFHfHx8fH19MzIy8vPzuWLcX8PDw0+dOmWrPkVFRQzDNHoIALzyyissy/r6+vr4+HB/9fX1PXLk\niNWTdO/enasMd5JFixYJeRa2IYDuvfdecoOTmJhICnz00UfkyJo1a8iRjRs3kiOrV6+2+8LJaUeO\nHNm6dWvyV/Jd/f3338kPJe6BXIy+//77LMsKPDNPze2+OU58auaX19VqNTlzXFxc7969yVMMGDCA\n/J9uidSTYZg2bdpYrTDnypUrp06dsvub2hIGOQZ5ozdHfkEunDQS0vTp01NTU1NTUxctWvT444+T\nD+nRRx+tqKggJcPDwwEgNDSUtDdv3rzZsmVLAIiNjSUFLK9mxMfHA0BERERubm5lZeX69etbtGgB\nAFOmTLFVn6SkJPJJZ2RklJeXnz17NjExEQBUKtWOHTtYll2+fDl5lh9++MHWSbihLEuWLCkvLz94\n8GBUVBQA+Pr63rp1S8izcIH+7LPPHjp0KCsr65577iFHyI+as2fPqlQqAHjqqafIkz733HMA0LJl\n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\nDFiaO8xCzwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%% Non-empty Dirichlet boundary condition.\n",
    "pde = sincosdata3;\n",
    "mesh.bdFlag = setboundary3(node,elem,'Dirichlet','~(x==0)','Neumann','x==0');\n",
    "femPoisson3(mesh,pde,option);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pure Neumann boundary condition\n",
    "\n",
    "When pure Neumann boundary condition is posed, i.e., $-\\Delta u =f$ in $\\Omega$ and $\\nabla u\\cdot n=g_N$ on $\\partial \\Omega$, the data should be consisitent in the sense that $\\int_{\\Omega} f \\, dx + \\int_{\\partial \\Omega} g \\, ds = 0$. The solution is unique up to a constant. A post-process is applied such that the constraint $\\int_{\\Omega}u_h dx = 0$ is imposed. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Multigrid V-cycle Preconditioner with Conjugate Gradient Method\n",
      "#dof:     4913,  #nnz:   103066, smoothing: (1,1), iter: 14,   err = 3.44e-09,   time = 0.17 s\n",
      "Multigrid V-cycle Preconditioner with Conjugate Gradient Method\n",
      "#dof:    35937,  #nnz:   792922, smoothing: (1,1), iter: 15,   err = 4.92e-09,   time = 0.41 s\n",
      "Table: Error\n",
      " #Dof       h        ||u-u_h||    ||Du-Du_h||   ||DuI-Du_h|| ||uI-u_h||_{max}\n",
      "\n",
      "  729   2.500e-01   4.51225e-03   1.18653e-01   8.76056e-02   3.82770e-02\n",
      " 4913   1.250e-01   5.69846e-04   3.35172e-02   1.48497e-02   3.41015e-03\n",
      "35937   6.250e-02   7.22323e-05   8.82113e-03   2.48250e-03   3.28987e-04\n",
      "\n",
      "Table: CPU time\n",
      " #Dof   Assemble     Solve      Error      Mesh    \n",
      "\n",
      "  729   1.70e-01   2.00e-02   1.10e-01   1.00e-02\n",
      " 4913   1.40e-01   1.66e-01   7.00e-02   1.00e-02\n",
      "35937   9.70e-01   4.13e-01   3.60e-01   8.00e-02\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA\nB3RJTUUH4gkNBgMP1z2YZQAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAxMi1TZXAtMjAxOCAyMzowMzoxNXsucesAACAA\nSURBVHic7N15fBPV+jj+J6W0ZSu0UGgp0AlLC7JpsRTbIglQUJFVLVwUmrorVPyJ36sCmlS9Lijc\n0gU/LpgAlysiIptXAaFhsUK1KFuhQEkKCEIpZSld6DK/P047xGydJJPM9rxf/SOZTGZOkid9cs6c\nRUHTNCCEEEJ88+O7AAghhBAAJiSEEEICgQkJIYSQIGBCQgghJAiYkBBCCAkCJiSEPHLt2rUXXnih\nV69eHTt2HDNmzL59+/guEUIecTWk9Xr98OHDX3nlFc9PrcBu3wh5Yty4cTt27FAoFMHBwdevXw8K\nCvrll1/uvvtuvsuFkJtcCukTJ04MGzasqqpqwoQJW7du9fDUWENCyH2//fbbjh07QkJCDh069Ndf\nfyUnJ9fU1Kxdu5bvciHkJpdC+vbt2zNnzqyqquLq7JiQEHLfqVOnevTo8dhjjw0ePDgoKOjhhx8G\ngJs3b/JdLoTc5FJIL1y48Pfff58yZQpXZ8cmO4Q4cPz48V9//VWn012+fPnHH39MSkriu0QIeaTF\nkP7pp5/GjRuXmpo6adKkadOmYZMdQkKRm5ubmppqMpkef/zx+Ph4vouDkKech3R5eXlqampMTExO\nTg6HJ/Xn8FicW7FixZEjR6w2tmrVql+/fsnJyX369OGlVM7RNL1p06bff/+9uro6LS1twIABfJdI\n7t56660bN2707Nlz/vz5rj53/vz5DQ0N/fv3f/75553v+corryQnJy9evPizzz6rrKxcs2aN3d0w\npJHnhBDSr7zyysWLF//1r3+dOHGipKQEAK5fv15YWDhkyJDWrVu7Wqo7aAGbPHmyo2IHBgb+3//9\nH/tDHTx4MDExMTExce3atd4rME3T06ZNYwq5fv16r54LsdG9e3cAGDZsmBvPDQgIAIBx48Y52iEr\nKys1NXX//v3k7p49ewCgXbt2dXV1dvfHkEaeE0JIjxw50m4YX7hwwY1SMQRdQ2IMGjSoc+fOAFBb\n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\nPdXV1UePHr12zc4CMYxz585hbHMIExLyVEZGxttvv233oXfffTcqKmr27Nk9evTIzc31ccFkjYxD\nAmy4c9Py5cu7d++emppKUdSbb75pu8OpU6cGDBgwevTovn37PvPMM74voSRhQkLue+utt5KSkpYu\nXWr30R07dmRlZRUVFR08eHD//v0LFiw4fvy4j0soaxpN08BYbLhz0dGjR1977bWCgoLCwsJDhw5l\nZ2f//PPPljvQND1hwoQ333zz1KlTJpNp165de/fu5au0UoIJCblv7Nixb775psbBeJd9+/aNGTOm\nW7duANC/f//hw4f/+OOPPi0fIpUkgL9NB45acvjw4bFjx/br1w8AoqKi+vbte/r0acsdfv75Z4VC\nMXPmTJqm27Rpc+rUqaSkJJ4KKynySkjinrJMeO6///7x48eT762t0NDQs2fPkts0TZ8/f565KzSS\nDQxsuHPLzJkzv/vuO3L75MmTRUVF8fHxljscPXp08ODBL774YpcuXcLCwrRurDuF7JFXQkpPT+e7\nCDwwmUy///6782uz3vDYY48dOnRowYIF+fn5c+fOvXnzZnV1tY/LwJKUA4NpuDMawWDgtyyc83Zs\n79u3b/To0QsXLuzfv7/l9vLy8i1btvTo0ePPP//csWPHF1988Z///MdLZZAVeSUkWamtrZ07d25I\nSEjv3r1jY2NDQ0OnTZtmMrm2mnRgYOCXX37pXgG6d+++b9++kpKSBQsWREdHT5o0iTTfIa+yU9tj\nGu4yMqTRcOeD2L59+/Yrr7wyffr0rKyshQsXWj3apk2b0NDQN954Iygo6O67737qqae2bt3qzivx\noezs7JiYGL5L0QJMSNJUXV2dmJi4evXqjz76qKSkpKSkJDMz88CBA8nJyVeuXPFNGcrLyxsaGr7+\n+muj0Thv3rw//vhjwIABvjm1nNmp7Umr4c43sf3II4+YzeZjx45NmzbN9tHo6OjAwEBm5T3LdWAF\nCxfoQ7zJzc39448/jEbj008/3bt37969e7/00ktZWVklJSVffPGFV0+9fPnyffv2AYC/v//48eP/\n+OMPANi2bduxY8cmTpzo1VOjueXl9h9QqSTTcOeD2N64caPZbP7mm286depkuZ2J7TFjxlRWVq5b\ntw4AysrKVq1aNWHCBE5OLXOYkCSIpunFixc/8sgj99xzj+X2Rx555OOPP+7evbtLR7t169bzzz8f\n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\n8ssvJ0+e/PDDD3/xxRd8l0XKWMb2mjVrOnfunJiY6PMCSpa8EhL2suNQYmLiggULbty4YTAYJk6c\n+NJLL1nOLCkQrbv27JGxPlid4rztThSBIYFVKMWCTWyXlpYuW7ZMIC3VkiGvhCRPJpPp999/v3bN\nzsUSz926daugoODatWtXr169efOmN07hIVJVil5/ge+CeApXobTFV2w3NjampaUtW7asTZs23ji1\nbGFCkqza2tq5c+eGhIT07t07NjY2NDR02rRpri6RHhgY+OWXXzrZISIiYvny5YWFhUePHsVLu171\nyCOPkCnwL1y4sHfvXjLdsDzxHtuZmZldunRp3779kSNHysvLL168aDvBJnIDdmqQpurq6pEjR546\ndWrJkiVkgaitW7d++OGHycnJ+/fv79Kli+eneO+99y5evEguy/n5+Q0bNqyoqMjzw/rMXzkvd06Z\n76izgw/gKpTuEUJsl5eXFxcXP/HEEwBw/vz5wMDA27dvL1u2zPNTyx3fS9b6jqyWMP/oo49atWp1\n8OBBy43r168HgPfff5/9cQICAlasWGH3oY0bNwYHB//22280TZeUlERERHzzzTeelJk9z9/zW0d/\nPvP88DPPD7/y9cdcHdNV77///muvvcbc3bx587333jtp0qTY2NjFixeTjWazefv27du3by8sLCRP\neeqppy5cuODomHJY7prH2M7Nzd27d6/Vzs8///ySJUtcew2ukMNnypBXQsrKyvLGYTk/pocaGxvD\nwsJSUlJsH/r4449XrlzJ/lABAQFZWVnPPfdcSEhIWFhYamrqjRs3mEcXLFgQGBjYs2fPjh07vvXW\nWxwUnR1O3vPbl85e+frj4kcizjw/fOmb//Tl55iZmTljxozo6GgmIVVUVAwZMmT//v00TV++fHn4\n8OE///yz1bN27Njx3HPPNTY2OjlydDNOQh1j2yq2u3TpsmDBAqvjCD8hZWVlRVvgpFReIq+EJKLD\neuLPP/8EAIPB4PmhAgICIiIiJkyYsHr16vnz5wcEBFj+qKdpuq6u7vz58/X19Z6fiz0O3/Pbl86e\nfWvameeH65KiuDpmiwoKCvbu3fv6668zb+a2bdvGjRvH7PD666/b/tj/5z//OXLkyAnN8vLybI8s\n+V/Tko9tW5L/TC3hNSQJOn36NABw1QmboqitW7cCwBNPPFFSUrJz507LR/39/QUyGNY9rbv2DJ+T\n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\nrkJggg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%% Pure Neumann boundary condition.\n",
    "pde = sincosdata3;\n",
    "option.plotflag = 0;\n",
    "mesh.bdFlag = setboundary3(node,elem,'Neumann');\n",
    "femPoisson3(mesh,pde,option);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Robin boundary condition"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[0;31mMatrix dimensions must agree.\n",
      "\n",
      "Error in Poisson3P2 (line 196)\n",
      "    uc = sum(u.*patchVolume)/sum(volume);\n",
      "\n",
      "Error in femPoisson3 (line 63)\n",
      "            [soln,eqn,info] = Poisson3P2(node,elem,bdFlag,pde,option);\n",
      "\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "%% Pure Robin boundary condition.\n",
    "pde = sincosRobindata3;\n",
    "mesh.bdFlag = setboundary3(node,elem,'Robin');\n",
    "femPoisson3(mesh,pde,option);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusion\n",
    "\n",
    "The optimal rate of convergence of the H1-norm (1st order) and L2-norm\n",
    "(2nd order) is observed. The 2nd order convergent rate between two\n",
    "discrete functions $\\|\\nabla (u_I - u_h)\\|$ is known as superconvergence.\n",
    "\n",
    "MGCG converges uniformly in all cases.\n",
    "\n",
    "TO DO: fix pure Neumann and Robin boundary condition."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Matlab",
   "language": "matlab",
   "name": "matlab"
  },
  "language_info": {
   "codemirror_mode": "octave",
   "file_extension": ".m",
   "help_links": [
    {
     "text": "MetaKernel Magics",
     "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
    }
   ],
   "mimetype": "text/x-matlab",
   "name": "matlab",
   "version": "0.14.3"
  },
  "toc": {
   "colors": {
    "hover_highlight": "#DAA520",
    "navigate_num": "#000000",
    "navigate_text": "#333333",
    "running_highlight": "#FF0000",
    "selected_highlight": "#FFD700",
    "sidebar_border": "#EEEEEE",
    "wrapper_background": "#FFFFFF"
   },
   "moveMenuLeft": true,
   "nav_menu": {
    "height": "120px",
    "width": "252px"
   },
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 4,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": true,
   "widenNotebook": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
